package br.com.funaction.eventtcontrollerv2.model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import br.com.funaction.eventtcontrollerv2.entities.Anuncio;
import br.com.funaction.eventtcontrollerv2.util.ConexaoUtil;

public class AnuncioDAO {

	private final String SELECT_ALL_ID = "SELECT * FROM funactio_eventt_controller.ANUNCIO WHERE ID_ANUNCIANTE=?;";
	private final String SELECT_NOME_PDV = "SELECT NOME_PDV FROM funactio_eventt_controller.pdv WHERE ID_PDV=?;";
	private final String SELECT_NOME_ANUNCIANTE = "SELECT NOME FROM funactio_eventt_controller.ANUNCIANTE WHERE ID=?;";
	
	Connection con = null;
	PreparedStatement prepStmt = null;
	ResultSet rs = null;
	ResultSet rsPDV = null;
	ResultSet rsAnunciante = null;
	
	public List<Anuncio> listaTudoAnuncio(int idAnunciante) throws SQLException{
		
		con = ConexaoUtil.getConexao();
		prepStmt = con.prepareStatement(SELECT_ALL_ID); //precisa ser feito
		prepStmt.setInt(1, idAnunciante);
		rs = prepStmt.executeQuery();
		
		List<Anuncio> lista = new ArrayList<Anuncio>();
		
		while(rs.next()){
			
			Anuncio anuncio = new Anuncio();
			anuncio.setValorAnuncio(rs.getDouble("VALOR"));
			anuncio.setIdPDV(rs.getInt("ID_PDV"));
			anuncio.setIdAnunciante(rs.getInt("ID_ANUNCIANTE"));
			
			prepStmt = con.prepareStatement(SELECT_NOME_PDV); //precisa ser feito
			prepStmt.setInt(1, anuncio.getIdPDV());
			rsPDV = prepStmt.executeQuery();
			
			while(rsPDV.next()){
				
				anuncio.setNomePDV(rsPDV.getString("NOME_PDV"));
			}
			
			prepStmt = con.prepareStatement(SELECT_NOME_ANUNCIANTE); //precisa ser feito
			prepStmt.setInt(1, anuncio.getIdAnunciante());
			rsAnunciante = prepStmt.executeQuery();
			
			while(rsAnunciante.next()){
				
				anuncio.setNomeAnunciante(rsAnunciante.getString("NOME"));
			}
			
			lista.add(anuncio);
		}
		
		return lista;
	}
}